Pagination এর প্রয়োজনীয়তা এবং তৈরি করা

PHP এবং MySQL তে Pagination এবং Searching - পিএইচপি মাইএসকিউএল আই (PHP MySQL) - Database Tutorials

286

Pagination (পেইজিনেশন) হল একটি কৌশল যার মাধ্যমে বড় আকারের ডেটা ছোট ছোট অংশে ভাগ করে ব্যবহারকারীর সামনে প্রদর্শন করা হয়। যখন ডেটাবেসে অনেক রেকর্ড থাকে, তখন পুরো ডেটাকে একসাথে দেখানো অস্বস্তিকর এবং ডেটাবেসের উপর অতিরিক্ত চাপ সৃষ্টি করতে পারে। পেইজিনেশন ব্যবহারের মাধ্যমে ডেটার একটি নির্দিষ্ট পরিমাণ একসাথে দেখানো হয়, যা ব্যবহারকারীদের জন্য আরও কার্যকরী এবং ডেটা লোডিংয়ের সময় কমায়।

এখানে PHP এবং MySQL ব্যবহার করে Pagination তৈরি করার জন্য প্রক্রিয়া এবং উদাহরণ দেওয়া হচ্ছে।


1. Pagination এর প্রয়োজনীয়তা

  1. পারফরম্যান্স উন্নতি: বড় ডেটাবেসের তথ্য যদি একসাথে প্রদর্শন করা হয়, তবে পেজ লোড সময় বাড়তে পারে। Pagination ব্যবহার করে শুধুমাত্র প্রয়োজনীয় ডেটা লোড করা হয়, যার ফলে পেজের লোডিং সময় কমে যায়।
  2. ব্যবহারকারীর অভিজ্ঞতা: দীর্ঘ তালিকা বা টেবিলের মধ্যে ব্যবহারকারীকে ঘোরাঘুরি করতে সহায়তা করে। পেইজিনেশন ব্যবহারের ফলে ব্যবহারকারী আরও সহজে তথ্য খুঁজে পায়।
  3. ডেটাবেসের চাপ কমানো: একসাথে পুরো ডেটা প্রক্রিয়া বা দেখানো না হওয়ায় ডেটাবেসের উপর চাপ কমে যায়।
  4. সহজ ব্যবহার: পেইজিনেশন কন্ট্রোলের মাধ্যমে ব্যবহারকারী সহজেই পরবর্তী, পূর্ববর্তী বা নির্দিষ্ট পেজে যেতে পারে।

2. Pagination তৈরি করার প্রক্রিয়া

এখানে আমরা একটি উদাহরণ দেখব যেখানে PHP এবং MySQL ব্যবহার করে পেইজিনেশন তৈরি করা হবে।

2.1 ডেটাবেস তৈরি এবং ডেটা ইনসার্ট করা

ধরা যাক, আমাদের একটি টেবিল রয়েছে posts, যেখানে বিভিন্ন ব্লগ পোস্ট সংরক্ষিত রয়েছে। প্রথমে, আমরা একটি সিম্পল posts টেবিল তৈরি করি এবং কিছু ডেটা ইনসার্ট করি।

CREATE TABLE posts (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO posts (title, content) VALUES 
('Post 1', 'Content of Post 1'),
('Post 2', 'Content of Post 2'),
('Post 3', 'Content of Post 3'),
('Post 4', 'Content of Post 4'),
('Post 5', 'Content of Post 5'),
('Post 6', 'Content of Post 6'),
('Post 7', 'Content of Post 7'),
('Post 8', 'Content of Post 8'),
('Post 9', 'Content of Post 9'),
('Post 10', 'Content of Post 10');

এখানে ১০টি পোস্ট ইনসার্ট করা হয়েছে।


3. Pagination কোড লেখা

ধরা যাক, আমরা প্রতি পেজে 3টি পোস্ট দেখাতে চাই। নিচে PHP এবং MySQL ব্যবহার করে পেইজিনেশন তৈরির উদাহরণ দেওয়া হলো।

3.1 PHP কোড

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";

// MySQLi সংযোগ স্থাপন
$conn = new mysqli($servername, $username, $password, $dbname);

// সংযোগ চেক করা
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// পেইজের পরিমাণ নির্ধারণ করা (প্রতি পেজে 3টি পোস্ট)
$posts_per_page = 3;

// পেইজ নম্বর ধরনা
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$offset = ($page - 1) * $posts_per_page;

// SQL কুয়েরি তৈরি
$sql = "SELECT * FROM posts LIMIT $posts_per_page OFFSET $offset";
$result = $conn->query($sql);

// ফলাফল চেক করা
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "ID: " . $row["id"]. " - Title: " . $row["title"]. "<br>";
    }
} else {
    echo "No results found";
}

// পরবর্তী পেইজের জন্য মোট রেকর্ড সংখ্যা বের করা
$sql = "SELECT COUNT(id) AS total_posts FROM posts";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_posts = $row['total_posts'];

// মোট পেইজ সংখ্যা বের করা
$total_pages = ceil($total_posts / $posts_per_page);

// Pagination লিঙ্ক তৈরি করা
echo "<br><br><div>";
if ($page > 1) {
    echo "<a href='?page=" . ($page - 1) . "'>Previous</a> ";
}

for ($i = 1; $i <= $total_pages; $i++) {
    if ($i == $page) {
        echo "<strong>$i</strong> ";
    } else {
        echo "<a href='?page=$i'>$i</a> ";
    }
}

if ($page < $total_pages) {
    echo "<a href='?page=" . ($page + 1) . "'>Next</a>";
}
echo "</div>";

// সংযোগ বন্ধ করা
$conn->close();
?>

এখানে যা করা হয়েছে:

  1. Post Count: প্রথমে আমরা মোট পোস্টের সংখ্যা বের করেছি এবং তা ব্যবহার করে মোট পেইজ সংখ্যা নির্ধারণ করেছি।
  2. LIMIT এবং OFFSET: LIMIT এবং OFFSET ব্যবহার করে আমরা প্রতি পেইজে কতটি রেকর্ড দেখাবো এবং কোন রেকর্ড থেকে শুরু হবে তা নির্ধারণ করেছি।
  3. Pagination Controls: পেইজিং কন্ট্রোলের জন্য Previous, Next এবং পেইজ নম্বরের লিঙ্ক তৈরি করেছি।

4. কীভাবে কাজ করে?

  1. প্রথম পেইজ: প্রথম পেইজে, page=1 এর জন্য কুয়েরি চলবে, এবং ৩টি পোস্ট প্রথম পেইজে প্রদর্শিত হবে।
  2. পরবর্তী পেইজ: পরবর্তী পেইজে গেলে, পেজ নম্বর $_GET['page'] এর মাধ্যমে শনাক্ত করা হবে এবং নতুন কুয়েরি সেই অনুযায়ী রেজাল্ট লোড করবে।
  3. Pagination Links: Previous এবং Next লিঙ্কের মাধ্যমে পেজ নেভিগেট করা সম্ভব।

উপসংহার

Pagination বড় আকারের ডেটাবেস অ্যাপ্লিকেশনগুলির পারফরম্যান্স এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে গুরুত্বপূর্ণ। PHP এবং MySQL ব্যবহার করে সহজেই পেইজিনেশন তৈরি করা সম্ভব। এখানে, আমরা দেখেছি কিভাবে LIMIT এবং OFFSET ব্যবহার করে পেইজের পরিমাণ নিয়ন্ত্রণ করতে হয় এবং কিভাবে পরবর্তী এবং পূর্ববর্তী পেইজের জন্য লিঙ্ক তৈরি করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...